package com.yanqu.road.entity.activity.chinesechess;

import com.yanqu.road.entity.DataObject;

import java.math.BigInteger;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ChineseChessPracticeUserData extends DataObject {

    private int activityId;

    private long userId;


    //当前场次积分大小
    private BigInteger score = BigInteger.ZERO;

    //走第几步了
    private int step;

    //生成了棋子
    private int chessCount;


    //下一次生成棋子回合数
    private int nextChessTurn;

    //下步棋子
    private Map<Integer,ChineseChessData> nextChessMap = new ConcurrentHashMap();


    //棋子数据
    private Map<Integer,ChineseChessData> chessMap = new ConcurrentHashMap();

    private long updateTime;
    //第几场了
    private int gameNo;
    //0进行中，1死亡等待复活，2已经结算完了
    private int gameStatus;

    private boolean isReviveSelf;//是否分身复活了

    private int reviveSelfTimes;//分身复活次数

    private int ingotReviveTimes;//元宝复活次
    //吃完将的buff次数
    private int powerTimes;
    private int shuaiTimes; //生成帅的次数
    private int passTime;


    public int getActivityId() {
        return activityId;
    }

    public void setActivityId(int activityId) {
        this.activityId = activityId;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public int getPassTime() {
        return passTime;
    }

    public void setPassTime(int passTime) {
        if(passTime != this.passTime){
            this.passTime = passTime;
            setUpdateOption();
        }
    }

    public int getShuaiTimes() {
        return shuaiTimes;
    }

    public void setShuaiTimes(int shuaiTimes) {
        if(shuaiTimes != this.shuaiTimes){
            this.shuaiTimes = shuaiTimes;
            setUpdateOption();
        }
    }

    public boolean isReviveSelf() {
        return isReviveSelf;
    }

    public void setReviveSelf(boolean reviveSelf) {
        if(reviveSelf != this.isReviveSelf){
            isReviveSelf = reviveSelf;
            setUpdateOption();
        }
    }

    public int getReviveSelfTimes() {
        return reviveSelfTimes;
    }

    public void setReviveSelfTimes(int reviveSelfTimes) {
        if(reviveSelfTimes != this.reviveSelfTimes){
            this.reviveSelfTimes = reviveSelfTimes;
            setUpdateOption();
        }
    }

    public int getIngotReviveTimes() {
        return ingotReviveTimes;
    }

    public void setIngotReviveTimes(int ingotReviveTimes) {
        if(ingotReviveTimes != this.ingotReviveTimes){
            this.ingotReviveTimes = ingotReviveTimes;
            setUpdateOption();
        }
    }


    public int getPowerTimes() {
        return powerTimes;
    }

    public void setPowerTimes(int powerTimes) {
        if(powerTimes != this.powerTimes){
            this.powerTimes = powerTimes;
            setUpdateOption();
        }
    }

    public int getGameStatus() {
        return gameStatus;
    }

    public void setGameStatus(int gameStatus) {
        if(gameStatus != this.gameStatus){
            this.gameStatus = gameStatus;
            setUpdateOption();
        }
    }

    public int getStep() {
        return step;
    }

    public void setStep(int step) {
        if(step != this.step){
            this.step = step;
            setUpdateOption();
        }
    }

    public int getChessCount() {
        return chessCount;
    }

    public void setChessCount(int chessCount) {
        if(chessCount != this.chessCount){
            this.chessCount = chessCount;
            setUpdateOption();
        }
    }

    public int getNextChessTurn() {
        return nextChessTurn;
    }

    public void setNextChessTurn(int nextChessTurn) {
        if(nextChessTurn != this.nextChessTurn){
            this.nextChessTurn = nextChessTurn;
            setUpdateOption();
        }
    }

    public Map<Integer, ChineseChessData> getNextChessMap() {
        return nextChessMap;
    }

    public void setNextChessMap(Map<Integer, ChineseChessData> nextChessMap) {
        this.nextChessMap = nextChessMap;
        setUpdateOption();
    }

    public Map<Integer, ChineseChessData> getChessMap() {
        return chessMap;
    }

    public void setChessMap(Map<Integer, ChineseChessData> chessMap) {
        this.chessMap = chessMap;
        setUpdateOption();
    }

    public int getGameNo() {
        return gameNo;
    }

    public void setGameNo(int gameNo) {
        if(gameNo != this.gameNo){
            this.gameNo = gameNo;
            setUpdateOption();
        }
    }

    public BigInteger getScore() {
        return score;
    }

    public void setScore(BigInteger score) {
        if(score.compareTo(this.score) != 0){
            this.score = score;
            setUpdateOption();
        }
    }

    public long getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(long updateTime) {
        if(updateTime != this.updateTime){
            this.updateTime = updateTime;
            setUpdateOption();
        }
    }
}
